//#define _CRT_SECURE_NO_WARNINGS 1
//#include <iostream>
//#include <string>
//#include <mutex>
//
//
////class Config
////{
////public:
////	static Config* GetInstance()
////	{
////		static Config sInfo;
////		return &sInfo;
////	}
////	void SetIp(const std::string& ip)
////	{
////		_ip = ip;
////	}
////	std::string& GetIp()
////	{
////		return _ip;
////	}
////
////private:
////	Config() {};
////	Config(const Config& sInfo) = delete;
////	Config& operator=(const Config& sInfo) = delete;
////	int _port = 80;
////	std::string _ip = "127.0.0.1";
////};
////
////void TestSInfo()
////{
////	Config* p = Config::GetInstance();
////	std::cout << p->GetIp() << std::endl;
////	p->SetIp("123.12.45");
////	std::cout << p->GetIp() << std::endl;
////
////}
////
////int main()
////{
////	TestSInfo();
////	return 0;
////}
//
//
//class ConfigInfo
//{
//public:
//	static ConfigInfo* GetInstance()
//	{
//		if (_pInfo == nullptr)
//		{
//			std::unique_lock<std::mutex> lock(_mtx);
//			if (_pInfo == nullptr)
//			{
//				_pInfo = new ConfigInfo;
//			}
//		}
//		return _pInfo;
//	}
//
//	void SetIp(const std::string& ip)
//	{
//		_ip = ip;
//	}
//	std::string& GetIp()
//	{
//		return _ip;
//	}
//
//private:
//	ConfigInfo() {}
//	ConfigInfo(const ConfigInfo& s) = delete;
//	ConfigInfo& operator=(const ConfigInfo& s) = delete;
//	std::string _ip = "127.0.0.1";
//	int _port = 80;
//
//	static ConfigInfo* _pInfo;
//	static std::mutex _mtx;
//};
//
//ConfigInfo* ConfigInfo::_pInfo = nullptr;
//std::mutex ConfigInfo::_mtx;
//
//void TestSInfo()
//{
//	ConfigInfo* p = ConfigInfo::GetInstance();
//	std::cout << p->GetIp() << std::endl;
//	p->SetIp("123.12.45");
//	std::cout << p->GetIp() << std::endl;
//
//	
//}
//
//int main()
//{
//	TestSInfo();
//	return 0;
//}
//
//
